home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / comms / other / slrn / slrn_src / src / art.h < prev    next >
C/C++ Source or Header  |  1999-05-14  |  6KB  |  181 lines

  1. #ifndef _SLRN_ART_H
  2. #define _SLRN_ART_H
  3. /* Copyright (c) 1998 John E. Davis (davis@space.mit.edu)
  4.  *
  5.  * This file is part of slrn.
  6.  *
  7.  * Slrn is free software; you can redistribute it and/or modify it
  8.  * under the terms of the GNU General Public License as published by the
  9.  * Free Software Foundation; either version 2, or (at your option) any
  10.  * later version.
  11.  * 
  12.  * Slrn is distributed in the hope that it will be useful, but WITHOUT
  13.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  14.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  15.  * for more details.
  16.  * 
  17.  * You should have received a copy of the GNU General Public License
  18.  * along with Slrn; see the file COPYING.  If not, write to the Free
  19.  * Software Foundation, 59 Temple Place - Suite 330, 
  20.  * Boston, MA  02111-1307, USA.
  21.  */
  22.  
  23. #ifndef SLRNPULL_CODE
  24. extern int slrn_select_article_mode (Slrn_Group_Type *, int, int);
  25. extern void slrn_init_article_mode (void);
  26. extern int slrn_insert_followup_format (char *, FILE *);
  27. extern SLKeyMap_List_Type *Slrn_Article_Keymap;
  28. extern char *Slrn_Quote_String;
  29. extern char *Slrn_Save_Directory;
  30. extern char *Slrn_Header_Help_Line;
  31. extern char *Slrn_Art_Help_Line;
  32. extern char *Slrn_Followup_Custom_Headers;
  33. extern char *Slrn_Reply_Custom_Headers;
  34.  
  35. extern int Slrn_Simulate_Graphic_Chars;
  36.  
  37. extern int Slrn_Article_Window_Border;
  38. extern int Slrn_Startup_With_Article;
  39. extern int Slrn_Show_Thread_Subject;
  40. extern int Slrn_Query_Next_Article;
  41. extern int Slrn_Query_Next_Group;
  42. extern int Slrn_Auto_CC_To_Poster;
  43. extern int Slrn_Score_After_XOver;
  44. extern int Slrn_Use_Tmpdir;
  45. extern int Slrn_Sorting_Mode;
  46. extern int Slrn_Threads_Visible;
  47. extern int Slrn_Wrap_Mode;
  48. extern int Slrn_Use_Header_Numbers;
  49. extern int Slrn_Reads_Per_Update;
  50. extern int Slrn_High_Score_Min;
  51. extern int Slrn_Low_Score_Max;
  52. extern int Slrn_Kill_Score_Max;
  53. extern char *Slrn_X_Browser;
  54. extern char *Slrn_NonX_Browser;
  55. #if SLRN_HAS_SPOILERS
  56. extern int Slrn_Spoiler_Char;
  57. extern int Slrn_Spoiler_Display_Mode;
  58. #endif
  59. #if SLRN_HAS_TILDE_FEATURE
  60. extern int Slrn_Use_Tildes;
  61. #endif
  62. extern int Slrn_New_Subject_Breaks_Threads;
  63. extern int Slrn_Sig_Is_End_Of_Article;
  64. extern int Slrn_Del_Article_Upon_Read;
  65. extern int Slrn_Followup_Strip_Sig;
  66.  
  67. #endif                       /* NOT SLRNPULL_CODE */
  68.  
  69. typedef struct Slrn_Header_Type
  70. {
  71.    struct Slrn_Header_Type *next, *prev;  /* threaded next/prev */
  72.    unsigned int flags;
  73. #define HEADER_READ            0x0001
  74. #define HEADER_TAGGED            0x0004
  75. #define HEADER_HIGH_SCORE        0x0008
  76. #define HEADER_LOW_SCORE        0x0010
  77. #define HEADER_HARMLESS_FLAGS_MASK    0x00FF 
  78. #define HEADER_HIDDEN            0x0100
  79. #define HEADER_NTAGGED            0x0200
  80. #define FAKE_PARENT            0x0400
  81. #define FAKE_CHILDREN            0x0800
  82. #define FAKE_HEADER_HIGH_SCORE        0x1000
  83. #define HEADER_CHMAP_PROCESSED        0x2000
  84.  
  85.    struct Slrn_Header_Type *real_next, *real_prev;
  86.    struct Slrn_Header_Type *parent, *child, *sister;  /* threaded relatives */
  87.    struct Slrn_Header_Type *hash_next;  /* next in hash table */
  88.    unsigned int num_children;
  89.    unsigned long hash;               /* based on msgid */
  90.    int number;                   /* server number */
  91.    int lines;
  92.    char *subject;                   /* malloced */
  93.    char *from;                   /* pointers to above space */
  94.    char *date;
  95.    char *msgid;
  96.    char *refs;
  97.    char *xref;
  98.    char *realname;               /* NOT Null terminated */
  99.    unsigned int realname_len;
  100.    unsigned int tag_number;
  101. #define MAX_TREE_SIZE 24
  102.    unsigned char tree[MAX_TREE_SIZE];
  103. #if SLRN_HAS_GROUPLENS
  104.    int gl_rating;
  105.    int gl_pred;
  106. #endif
  107. #if SLRN_HAS_SORT_BY_SCORE
  108.    int score;
  109.    int thread_score;
  110. #endif
  111. } Slrn_Header_Type;
  112.  
  113. extern Slrn_Header_Type *Slrn_First_Header;
  114. extern Slrn_Header_Type *Slrn_Current_Header;
  115.  
  116. extern int slrn_goto_header (Slrn_Header_Type *, int);
  117. extern int slrn_locate_header_by_msgid (char *, int);
  118.  
  119.  
  120. typedef struct Slrn_Article_Line_Type
  121. {
  122.    struct Slrn_Article_Line_Type *next, *prev;
  123.    unsigned int flags;
  124. #define HEADER_LINE    1
  125. #define HIDDEN_LINE    2
  126. #define QUOTE_LINE    4
  127. #define SIGNATURE_LINE    8
  128. #define WRAPPED_LINE    0x10
  129. #if SLRN_HAS_SPOILERS
  130. # define SPOILER_LINE    0x20
  131. #endif
  132.    char *buf;
  133. }
  134. Slrn_Article_Line_Type;
  135.  
  136. extern Slrn_Header_Type *slrn_find_header_with_msgid (char *);
  137. extern int slrn_set_visible_headers (char *);
  138.  
  139. extern Slrn_Article_Line_Type *Slrn_Article_Lines;
  140.  
  141. extern SLRegexp_Type *Slrn_Ignore_Quote_Regexp[];
  142.  
  143. extern int slrn_pipe_article_to_cmd (char *);
  144. extern int slrn_save_current_article (char *);
  145.  
  146. extern Slrn_Article_Line_Type *slrn_search_article (char *, char **, int, int);
  147. extern unsigned int slrn_header_down_n (unsigned int, int);
  148. extern unsigned int slrn_header_up_n (unsigned int, int);
  149.  
  150. extern void slrn_collapse_this_thread (Slrn_Header_Type *, int);
  151. extern void slrn_collapse_threads (int);
  152. extern void slrn_uncollapse_threads (int);
  153. extern void slrn_uncollapse_this_thread (Slrn_Header_Type *, int);
  154. extern unsigned int slrn_thread_size (Slrn_Header_Type *);
  155. extern int slrn_is_thread_collapsed (Slrn_Header_Type *);
  156.  
  157. extern int slrn_next_unread_header (void);
  158. extern int slrn_goto_num_tagged_header (int *);
  159. extern int slrn_next_tagged_header (void);
  160. extern int slrn_prev_tagged_header (void);
  161. extern void slrn_set_article_window_size (int);
  162. extern char *slrn_extract_header (char *, unsigned int);
  163.  
  164. /* Third argument must be zero unless caller deals with Slrn_Current_Header. */
  165. extern Slrn_Header_Type *slrn_set_header_score (Slrn_Header_Type *, int, int);
  166.  
  167. extern int slrn_is_article_visible (void);
  168. extern int slrn_is_article_win_zoomed (void);
  169.  
  170. extern int slrn_edit_score (Slrn_Header_Type *, char *);
  171.  
  172. int slrn_get_next_pagedn_action (void);
  173.  
  174. #if SLRN_HAS_SORT_BY_SCORE
  175. extern int Slrn_Display_Score;
  176. #endif
  177.  
  178. extern int slrn_set_header_format (unsigned int, char *);
  179.  
  180. #endif                       /* _SLRN_ART_H */
  181.